{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. 股票价格预测"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1 问题定义"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. Motivation是什么？投资组合管理\n",
    "    \n",
    "2. 问题是什么？\n",
    "问题：进行未来的股票价格的预测   \n",
    "监督学习：回归问题（线性回归模型、SVM模型、神经网络模型）    \n",
    "输入：股票基本面数据（收盘价、成交量等）、财务数据（PE等）     \n",
    "输出：未来一日或几日的股票价格，决定进行买入或卖出操作     \n",
    "     \n",
    "3. Pipline是什么？     \n",
    "特征工程（数据清洗、特征选择、特征构建等） + 模型构建（训练）\n",
    "    \n",
    "4. 评价指标是什么？    \n",
    "（1）均方根误差RMSE     \n",
    "（2）统计检验R2=SSR/SST=1-SSE/SST     \n",
    "其中：SST=SSR+SSE，SST(total sum of squares)为总平方和，SSR(regression sum of squares)为回归平方和，SSE(error sum of squares) 为残差平方和。     \n",
    "For example:\n",
    "lets say that we have 5, 6, 7, and 8, and a model predicts the outcomes as 4.5, 6.3, 7.2, and 7.9. Then,\n",
    "SSE can be calculated as: SSE = (5 – 4.5) ^ 2 + (6 – 6.3) ^ 2 + (7 – 7.2) ^ 2 + (8 – 7.9) ^ 2;\n",
    "and SST can be calculated as: mean = (5 + 6 + 7 + 8) / 4 = 6.5; SST = (5 – 6.5) ^ 2 + (6 – 6.5) ^ 2 + (7 – 6.5) ^ 2 + (8 – 6.5) ^ 2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.2 sklearn.linear_model.LinearRegression¶"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "API =>  https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html    \n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 梯度下降\n",
    "def gradient_descend(self, g_w, g_b, step=0.01):\n",
    "    self.w = self.w - g_w * step\n",
    "    self.b = self.b - g_b * step\n",
    "\n",
    "# 训练\n",
    "def fit(self,x,y):\n",
    "    count = 1\n",
    "    precsion = 0.0001\n",
    "    w_last = self.w + 1\n",
    "    b_last = self.b + 1\n",
    "    size = x.shape[0]\n",
    "    while True:\n",
    "        # 终止迭代\n",
    "        if (np.abs(w_last - self.w) < precsion) and (np.abs(b_last - self.b) < precsion):\n",
    "            break\n",
    "        if count > 3000:\n",
    "            break\n",
    "        g_w = 0 \n",
    "        g_b = 0         \n",
    "        for xi,yi in zip(x,y):\n",
    "            g_w += self.loss(xi,yi)[0]/size\n",
    "            g_b += self.loss(xi,yi)[1]/size\n",
    "        # 记录上一次记录\n",
    "        w_last = self.w\n",
    "        b_last = self.b\n",
    "        self.gradient_descend(g_w,g_b)\n",
    "        count += 1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.3 线性回归模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "jsZwEpB3qh1y"
   },
   "source": [
    "### 导入工具库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "executionInfo": {
     "elapsed": 909,
     "status": "ok",
     "timestamp": 1596201462694,
     "user": {
      "displayName": "Shubham Sood",
      "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gi0ldgwk3p_Q0rON7ydNzarF2aCo0j89DXbT0ZVKiM=s64",
      "userId": "08327893235702426167"
     },
     "user_tz": -330
    },
    "id": "5R5WdATi8qoF"
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import math,datetime\n",
    "import time\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import style\n",
    "\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.tree import DecisionTreeRegressor\n",
    "from sklearn.neighbors import KNeighborsRegressor\n",
    "from sklearn import model_selection\n",
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "2X4bOIWV8qoT"
   },
   "source": [
    "### 加载数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "executionInfo": {
     "elapsed": 836,
     "status": "ok",
     "timestamp": 1596201464000,
     "user": {
      "displayName": "Shubham Sood",
      "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gi0ldgwk3p_Q0rON7ydNzarF2aCo0j89DXbT0ZVKiM=s64",
      "userId": "08327893235702426167"
     },
     "user_tz": -330
    },
    "id": "PrGeA-ux8qoV"
   },
   "outputs": [],
   "source": [
    "df = pd.read_csv('data/GOOG.csv',index_col='Date',parse_dates=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 134
    },
    "colab_type": "code",
    "executionInfo": {
     "elapsed": 932,
     "status": "ok",
     "timestamp": 1596201464534,
     "user": {
      "displayName": "Shubham Sood",
      "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gi0ldgwk3p_Q0rON7ydNzarF2aCo0j89DXbT0ZVKiM=s64",
      "userId": "08327893235702426167"
     },
     "user_tz": -330
    },
    "id": "Hfk79UbG8qof",
    "outputId": "605761fe-bafc-4fb9-c7fb-79f55c3f4756",
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2004-08-19</th>\n",
       "      <td>49.813286</td>\n",
       "      <td>51.835709</td>\n",
       "      <td>47.800831</td>\n",
       "      <td>49.982655</td>\n",
       "      <td>49.982655</td>\n",
       "      <td>44871300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004-08-20</th>\n",
       "      <td>50.316402</td>\n",
       "      <td>54.336334</td>\n",
       "      <td>50.062355</td>\n",
       "      <td>53.952770</td>\n",
       "      <td>53.952770</td>\n",
       "      <td>22942800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004-08-23</th>\n",
       "      <td>55.168217</td>\n",
       "      <td>56.528118</td>\n",
       "      <td>54.321388</td>\n",
       "      <td>54.495735</td>\n",
       "      <td>54.495735</td>\n",
       "      <td>18342800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004-08-24</th>\n",
       "      <td>55.412300</td>\n",
       "      <td>55.591629</td>\n",
       "      <td>51.591621</td>\n",
       "      <td>52.239193</td>\n",
       "      <td>52.239193</td>\n",
       "      <td>15319700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004-08-25</th>\n",
       "      <td>52.284027</td>\n",
       "      <td>53.798351</td>\n",
       "      <td>51.746044</td>\n",
       "      <td>52.802086</td>\n",
       "      <td>52.802086</td>\n",
       "      <td>9232100</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 Open       High        Low      Close  Adj Close    Volume\n",
       "Date                                                                       \n",
       "2004-08-19  49.813286  51.835709  47.800831  49.982655  49.982655  44871300\n",
       "2004-08-20  50.316402  54.336334  50.062355  53.952770  53.952770  22942800\n",
       "2004-08-23  55.168217  56.528118  54.321388  54.495735  54.495735  18342800\n",
       "2004-08-24  55.412300  55.591629  51.591621  52.239193  52.239193  15319700\n",
       "2004-08-25  52.284027  53.798351  51.746044  52.802086  52.802086   9232100"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2020-04-29</th>\n",
       "      <td>1341.459961</td>\n",
       "      <td>1359.989990</td>\n",
       "      <td>1325.339966</td>\n",
       "      <td>1341.479980</td>\n",
       "      <td>1341.479980</td>\n",
       "      <td>3793600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-30</th>\n",
       "      <td>1324.880005</td>\n",
       "      <td>1352.819946</td>\n",
       "      <td>1322.489990</td>\n",
       "      <td>1348.660034</td>\n",
       "      <td>1348.660034</td>\n",
       "      <td>2668900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-05-01</th>\n",
       "      <td>1328.500000</td>\n",
       "      <td>1352.069946</td>\n",
       "      <td>1311.000000</td>\n",
       "      <td>1320.609985</td>\n",
       "      <td>1320.609985</td>\n",
       "      <td>2072500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-05-04</th>\n",
       "      <td>1308.229980</td>\n",
       "      <td>1327.660034</td>\n",
       "      <td>1299.000000</td>\n",
       "      <td>1326.800049</td>\n",
       "      <td>1326.800049</td>\n",
       "      <td>1504000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-05-05</th>\n",
       "      <td>1337.920044</td>\n",
       "      <td>1373.939941</td>\n",
       "      <td>1337.459961</td>\n",
       "      <td>1351.109985</td>\n",
       "      <td>1351.109985</td>\n",
       "      <td>1650700</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   Open         High          Low        Close    Adj Close  \\\n",
       "Date                                                                          \n",
       "2020-04-29  1341.459961  1359.989990  1325.339966  1341.479980  1341.479980   \n",
       "2020-04-30  1324.880005  1352.819946  1322.489990  1348.660034  1348.660034   \n",
       "2020-05-01  1328.500000  1352.069946  1311.000000  1320.609985  1320.609985   \n",
       "2020-05-04  1308.229980  1327.660034  1299.000000  1326.800049  1326.800049   \n",
       "2020-05-05  1337.920044  1373.939941  1337.459961  1351.109985  1351.109985   \n",
       "\n",
       "             Volume  \n",
       "Date                 \n",
       "2020-04-29  3793600  \n",
       "2020-04-30  2668900  \n",
       "2020-05-01  2072500  \n",
       "2020-05-04  1504000  \n",
       "2020-05-05  1650700  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据日期范围：[2004-08-19，2020-05-05] "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 对数据做简单分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x282314b7e80>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 箱型图：1. 直观明了地识别数据批中的异常值；2. 利用箱线图判断数据批的偏态和尾重。\n",
    "# sym:表示异常点形状\n",
    "plt.figure(figsize=(6, 4))\n",
    "df[['Close']].boxplot(showmeans=True, fontsize=8, notch = True, sym = '.', grid=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 特征工程"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "构建新特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "DPmxI2Nm8qo4"
   },
   "outputs": [],
   "source": [
    "# 单日价格变化率\n",
    "df['OC_Change'] = (df['Close'] - df['Open']) / df['Open'] * 100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "FD4EaR_y8qo-"
   },
   "outputs": [],
   "source": [
    "# 单日最大价格差\n",
    "df['HL_Change'] = (df['High'] - df['Low']) / df['Low'] * 100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "T2ji-0PZ8qpB"
   },
   "outputs": [],
   "source": [
    "# 模型使用的特征\n",
    "df = df[['Close','HL_Change','OC_Change','Volume']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "kn6KSC0B8qpE"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Close</th>\n",
       "      <th>HL_Change</th>\n",
       "      <th>OC_Change</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2004-08-19</th>\n",
       "      <td>49.982655</td>\n",
       "      <td>8.441021</td>\n",
       "      <td>0.340008</td>\n",
       "      <td>44871300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004-08-20</th>\n",
       "      <td>53.952770</td>\n",
       "      <td>8.537311</td>\n",
       "      <td>7.227003</td>\n",
       "      <td>22942800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004-08-23</th>\n",
       "      <td>54.495735</td>\n",
       "      <td>4.062359</td>\n",
       "      <td>-1.218966</td>\n",
       "      <td>18342800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004-08-24</th>\n",
       "      <td>52.239193</td>\n",
       "      <td>7.753212</td>\n",
       "      <td>-5.726359</td>\n",
       "      <td>15319700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004-08-25</th>\n",
       "      <td>52.802086</td>\n",
       "      <td>3.966114</td>\n",
       "      <td>0.990855</td>\n",
       "      <td>9232100</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                Close  HL_Change  OC_Change    Volume\n",
       "Date                                                 \n",
       "2004-08-19  49.982655   8.441021   0.340008  44871300\n",
       "2004-08-20  53.952770   8.537311   7.227003  22942800\n",
       "2004-08-23  54.495735   4.062359  -1.218966  18342800\n",
       "2004-08-24  52.239193   7.753212  -5.726359  15319700\n",
       "2004-08-25  52.802086   3.966114   0.990855   9232100"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Timestamp('2004-08-19 00:00:00'),\n",
       " Timestamp('2004-08-20 00:00:00'),\n",
       " Timestamp('2004-08-23 00:00:00'),\n",
       " Timestamp('2004-08-24 00:00:00'),\n",
       " Timestamp('2004-08-25 00:00:00')]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index.tolist()[0:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Timestamp('2020-04-29 00:00:00'),\n",
       " Timestamp('2020-04-30 00:00:00'),\n",
       " Timestamp('2020-05-01 00:00:00'),\n",
       " Timestamp('2020-05-04 00:00:00'),\n",
       " Timestamp('2020-05-05 00:00:00')]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index.tolist()[-5:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Close</th>\n",
       "      <th>HL_Change</th>\n",
       "      <th>OC_Change</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2020-04-29</th>\n",
       "      <td>1341.479980</td>\n",
       "      <td>2.614425</td>\n",
       "      <td>0.001492</td>\n",
       "      <td>3793600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-30</th>\n",
       "      <td>1348.660034</td>\n",
       "      <td>2.293398</td>\n",
       "      <td>1.794882</td>\n",
       "      <td>2668900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-05-01</th>\n",
       "      <td>1320.609985</td>\n",
       "      <td>3.132719</td>\n",
       "      <td>-0.593904</td>\n",
       "      <td>2072500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-05-04</th>\n",
       "      <td>1326.800049</td>\n",
       "      <td>2.206315</td>\n",
       "      <td>1.419480</td>\n",
       "      <td>1504000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-05-05</th>\n",
       "      <td>1351.109985</td>\n",
       "      <td>2.727557</td>\n",
       "      <td>0.985854</td>\n",
       "      <td>1650700</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  Close  HL_Change  OC_Change   Volume\n",
       "Date                                                  \n",
       "2020-04-29  1341.479980   2.614425   0.001492  3793600\n",
       "2020-04-30  1348.660034   2.293398   1.794882  2668900\n",
       "2020-05-01  1320.609985   3.132719  -0.593904  2072500\n",
       "2020-05-04  1326.800049   2.206315   1.419480  1504000\n",
       "2020-05-05  1351.109985   2.727557   0.985854  1650700"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "WK7vMISq8qpH"
   },
   "source": [
    "### 标签列Labels的确定"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Close</th>\n",
       "      <th>HL_Change</th>\n",
       "      <th>OC_Change</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2004-08-19</th>\n",
       "      <td>49.982655</td>\n",
       "      <td>8.441021</td>\n",
       "      <td>0.340008</td>\n",
       "      <td>44871300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004-08-20</th>\n",
       "      <td>53.952770</td>\n",
       "      <td>8.537311</td>\n",
       "      <td>7.227003</td>\n",
       "      <td>22942800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004-08-23</th>\n",
       "      <td>54.495735</td>\n",
       "      <td>4.062359</td>\n",
       "      <td>-1.218966</td>\n",
       "      <td>18342800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004-08-24</th>\n",
       "      <td>52.239193</td>\n",
       "      <td>7.753212</td>\n",
       "      <td>-5.726359</td>\n",
       "      <td>15319700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004-08-25</th>\n",
       "      <td>52.802086</td>\n",
       "      <td>3.966114</td>\n",
       "      <td>0.990855</td>\n",
       "      <td>9232100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-29</th>\n",
       "      <td>1341.479980</td>\n",
       "      <td>2.614425</td>\n",
       "      <td>0.001492</td>\n",
       "      <td>3793600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-30</th>\n",
       "      <td>1348.660034</td>\n",
       "      <td>2.293398</td>\n",
       "      <td>1.794882</td>\n",
       "      <td>2668900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-05-01</th>\n",
       "      <td>1320.609985</td>\n",
       "      <td>3.132719</td>\n",
       "      <td>-0.593904</td>\n",
       "      <td>2072500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-05-04</th>\n",
       "      <td>1326.800049</td>\n",
       "      <td>2.206315</td>\n",
       "      <td>1.419480</td>\n",
       "      <td>1504000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-05-05</th>\n",
       "      <td>1351.109985</td>\n",
       "      <td>2.727557</td>\n",
       "      <td>0.985854</td>\n",
       "      <td>1650700</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3955 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                  Close  HL_Change  OC_Change    Volume\n",
       "Date                                                   \n",
       "2004-08-19    49.982655   8.441021   0.340008  44871300\n",
       "2004-08-20    53.952770   8.537311   7.227003  22942800\n",
       "2004-08-23    54.495735   4.062359  -1.218966  18342800\n",
       "2004-08-24    52.239193   7.753212  -5.726359  15319700\n",
       "2004-08-25    52.802086   3.966114   0.990855   9232100\n",
       "...                 ...        ...        ...       ...\n",
       "2020-04-29  1341.479980   2.614425   0.001492   3793600\n",
       "2020-04-30  1348.660034   2.293398   1.794882   2668900\n",
       "2020-05-01  1320.609985   3.132719  -0.593904   2072500\n",
       "2020-05-04  1326.800049   2.206315   1.419480   1504000\n",
       "2020-05-05  1351.109985   2.727557   0.985854   1650700\n",
       "\n",
       "[3955 rows x 4 columns]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import copy\n",
    "# 作为推理过程的输入数据\n",
    "df_Mark =  copy.deepcopy(df)\n",
    "df_Mark"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "40"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# forecast_out表示测试集大小\n",
    "forecast_out = int(math.ceil(0.01*len(df)))\n",
    "forecast_out"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1280.390015, 1215.410034, 1114.910034, 1219.72998 , 1084.329956,\n",
       "       1119.800049, 1096.800049, 1115.290039, 1072.319946, 1056.619995,\n",
       "       1134.459961, 1102.48999 , 1161.75    , 1110.709961, 1146.819946,\n",
       "       1162.810059, 1105.619995, 1120.839966, 1097.880005, 1186.920044,\n",
       "       1186.51001 , 1210.280029, 1211.449951, 1217.560059, 1269.22998 ,\n",
       "       1262.469971, 1263.469971, 1283.25    , 1266.609985, 1216.339966,\n",
       "       1263.209961, 1276.310059, 1279.310059, 1275.880005, 1233.670044,\n",
       "       1341.47998 , 1348.660034, 1320.609985, 1326.800049, 1351.109985])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 记录测试集（用于推理过程）收盘价\n",
    "Close_Mark = df['Close'][-40:].to_numpy()\n",
    "Close_Mark"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 336
    },
    "colab_type": "code",
    "executionInfo": {
     "elapsed": 2727,
     "status": "ok",
     "timestamp": 1596178594978,
     "user": {
      "displayName": "Shubham Sood",
      "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gi0ldgwk3p_Q0rON7ydNzarF2aCo0j89DXbT0ZVKiM=s64",
      "userId": "08327893235702426167"
     },
     "user_tz": -330
    },
    "id": "rox_2FQu8qpH",
    "outputId": "5b2f7f71-bc3b-4ecc-f5d3-687e8a29058f"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Date\n",
       "2004-08-19      53.952770\n",
       "2004-08-20      54.495735\n",
       "2004-08-23      52.239193\n",
       "2004-08-24      52.802086\n",
       "2004-08-25      53.753517\n",
       "                 ...     \n",
       "2020-04-29    1348.660034\n",
       "2020-04-30    1320.609985\n",
       "2020-05-01    1326.800049\n",
       "2020-05-04    1351.109985\n",
       "2020-05-05            NaN\n",
       "Name: Label, Length: 3955, dtype: float64"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "forecast_Col = 'Close'\n",
    "df['Label'] = df['Close'].shift(- 1)\n",
    "df['Label']  # (3955,)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "eLF8ItFA8qpQ"
   },
   "source": [
    "### 数据集划分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "SmCsLzdC8qpQ"
   },
   "outputs": [],
   "source": [
    "X  =  np.array(df.drop(['Label'], axis = 1)[0:-forecast_out])\n",
    "Y  =  np.array(df['Label'][0:-forecast_out])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "executionInfo": {
     "elapsed": 1940,
     "status": "ok",
     "timestamp": 1596178594981,
     "user": {
      "displayName": "Shubham Sood",
      "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gi0ldgwk3p_Q0rON7ydNzarF2aCo0j89DXbT0ZVKiM=s64",
      "userId": "08327893235702426167"
     },
     "user_tz": -330
    },
    "id": "pxt6oBJu8qpS",
    "outputId": "9545d383-a3b5-409d-f9d3-e1b52c608174"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3915 3915\n"
     ]
    }
   ],
   "source": [
    "print(len(X),len(Y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "C9p1SOZB8qpU"
   },
   "outputs": [],
   "source": [
    "X_train, X_valid, Y_train, Y_valid = model_selection.train_test_split(X,Y,test_size = 0.2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "executionInfo": {
     "elapsed": 1645,
     "status": "ok",
     "timestamp": 1596178594982,
     "user": {
      "displayName": "Shubham Sood",
      "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gi0ldgwk3p_Q0rON7ydNzarF2aCo0j89DXbT0ZVKiM=s64",
      "userId": "08327893235702426167"
     },
     "user_tz": -330
    },
    "id": "5EOaW4QYwcmh",
    "outputId": "17cb2611-1a27-4ce0-8381-5dbab5b96df8"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(3132, 4) (3132,) (783, 4) (783,)\n"
     ]
    }
   ],
   "source": [
    "a = np.shape(X_train)\n",
    "b = np.shape(Y_train)\n",
    "c = np.shape(X_valid)\n",
    "d = np.shape(Y_valid)\n",
    "print(a,b,c,d)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "UQWLp9yi8qpX"
   },
   "source": [
    "\n",
    "### 应用线性回归模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "executionInfo": {
     "elapsed": 2452,
     "status": "ok",
     "timestamp": 1596178596205,
     "user": {
      "displayName": "Shubham Sood",
      "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gi0ldgwk3p_Q0rON7ydNzarF2aCo0j89DXbT0ZVKiM=s64",
      "userId": "08327893235702426167"
     },
     "user_tz": -330
    },
    "id": "PhQsj3dX8qpZ",
    "outputId": "41abd291-a0d6-41de-e4f7-8b0a467e9a96"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练时间:0.001996278762817383\n"
     ]
    }
   ],
   "source": [
    "startlr = time.time()\n",
    "\n",
    "lr = LinearRegression()\n",
    "lr.fit(X_train,Y_train)\n",
    "\n",
    "endlr = time.time()\n",
    "\n",
    "time_lr = endlr-startlr\n",
    "\n",
    "print('训练时间:{}'.format(time_lr))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "executionInfo": {
     "elapsed": 2328,
     "status": "ok",
     "timestamp": 1596178596205,
     "user": {
      "displayName": "Shubham Sood",
      "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gi0ldgwk3p_Q0rON7ydNzarF2aCo0j89DXbT0ZVKiM=s64",
      "userId": "08327893235702426167"
     },
     "user_tz": -330
    },
    "id": "U_5WvByZ8qpb",
    "outputId": "787c9d1d-b82e-4758-a575-e42d96bb4809"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "线性模型的验证集准确率为： 0.9992284278269729\n"
     ]
    }
   ],
   "source": [
    "accuracy = lr.score(X_valid,Y_valid)\n",
    "print(\"线性模型的验证集准确率为： {}\".format(accuracy))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 推理过程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Close</th>\n",
       "      <th>HL_Change</th>\n",
       "      <th>OC_Change</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2020-03-10</th>\n",
       "      <td>1280.390015</td>\n",
       "      <td>5.118275</td>\n",
       "      <td>1.618255</td>\n",
       "      <td>2611400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-11</th>\n",
       "      <td>1215.410034</td>\n",
       "      <td>5.425269</td>\n",
       "      <td>-2.743852</td>\n",
       "      <td>2608500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-12</th>\n",
       "      <td>1114.910034</td>\n",
       "      <td>7.237038</td>\n",
       "      <td>-0.984899</td>\n",
       "      <td>4226700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-13</th>\n",
       "      <td>1219.729980</td>\n",
       "      <td>9.185670</td>\n",
       "      <td>3.454621</td>\n",
       "      <td>3700100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-16</th>\n",
       "      <td>1084.329956</td>\n",
       "      <td>7.243497</td>\n",
       "      <td>-1.064785</td>\n",
       "      <td>4252400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-17</th>\n",
       "      <td>1119.800049</td>\n",
       "      <td>7.087999</td>\n",
       "      <td>2.441663</td>\n",
       "      <td>3861500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-18</th>\n",
       "      <td>1096.800049</td>\n",
       "      <td>6.673219</td>\n",
       "      <td>3.813503</td>\n",
       "      <td>4233400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-19</th>\n",
       "      <td>1115.290039</td>\n",
       "      <td>9.231318</td>\n",
       "      <td>2.034673</td>\n",
       "      <td>3651100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-20</th>\n",
       "      <td>1072.319946</td>\n",
       "      <td>7.367502</td>\n",
       "      <td>-5.582364</td>\n",
       "      <td>3601800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-23</th>\n",
       "      <td>1056.619995</td>\n",
       "      <td>5.701222</td>\n",
       "      <td>-0.442840</td>\n",
       "      <td>4044100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-24</th>\n",
       "      <td>1134.459961</td>\n",
       "      <td>4.069245</td>\n",
       "      <td>2.780465</td>\n",
       "      <td>3344500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-25</th>\n",
       "      <td>1102.489990</td>\n",
       "      <td>5.790924</td>\n",
       "      <td>-2.128772</td>\n",
       "      <td>4081500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-26</th>\n",
       "      <td>1161.750000</td>\n",
       "      <td>6.990201</td>\n",
       "      <td>4.492710</td>\n",
       "      <td>3571700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-27</th>\n",
       "      <td>1110.709961</td>\n",
       "      <td>4.047346</td>\n",
       "      <td>-1.328994</td>\n",
       "      <td>3208500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-30</th>\n",
       "      <td>1146.819946</td>\n",
       "      <td>5.029734</td>\n",
       "      <td>1.935923</td>\n",
       "      <td>2574100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-03-31</th>\n",
       "      <td>1162.810059</td>\n",
       "      <td>3.265859</td>\n",
       "      <td>1.351870</td>\n",
       "      <td>2486400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-01</th>\n",
       "      <td>1105.619995</td>\n",
       "      <td>2.937718</td>\n",
       "      <td>-1.459893</td>\n",
       "      <td>2344200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-02</th>\n",
       "      <td>1120.839966</td>\n",
       "      <td>2.778180</td>\n",
       "      <td>2.055975</td>\n",
       "      <td>1964900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-03</th>\n",
       "      <td>1097.880005</td>\n",
       "      <td>4.049784</td>\n",
       "      <td>-1.888715</td>\n",
       "      <td>2313400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-06</th>\n",
       "      <td>1186.920044</td>\n",
       "      <td>5.634260</td>\n",
       "      <td>4.298774</td>\n",
       "      <td>2664700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-07</th>\n",
       "      <td>1186.510010</td>\n",
       "      <td>3.617741</td>\n",
       "      <td>-2.824733</td>\n",
       "      <td>2387300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-08</th>\n",
       "      <td>1210.280029</td>\n",
       "      <td>2.601494</td>\n",
       "      <td>0.313305</td>\n",
       "      <td>1975100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-09</th>\n",
       "      <td>1211.449951</td>\n",
       "      <td>2.409469</td>\n",
       "      <td>-1.031796</td>\n",
       "      <td>2175400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-13</th>\n",
       "      <td>1217.560059</td>\n",
       "      <td>2.771307</td>\n",
       "      <td>0.693032</td>\n",
       "      <td>1739800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-14</th>\n",
       "      <td>1269.229980</td>\n",
       "      <td>3.649349</td>\n",
       "      <td>1.938817</td>\n",
       "      <td>2470400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-15</th>\n",
       "      <td>1262.469971</td>\n",
       "      <td>3.229598</td>\n",
       "      <td>1.353553</td>\n",
       "      <td>1671700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-16</th>\n",
       "      <td>1263.469971</td>\n",
       "      <td>2.927685</td>\n",
       "      <td>-0.834315</td>\n",
       "      <td>2518100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-17</th>\n",
       "      <td>1283.250000</td>\n",
       "      <td>1.825010</td>\n",
       "      <td>-0.124526</td>\n",
       "      <td>1949000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-20</th>\n",
       "      <td>1266.609985</td>\n",
       "      <td>1.603810</td>\n",
       "      <td>-0.345399</td>\n",
       "      <td>1695500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-21</th>\n",
       "      <td>1216.339966</td>\n",
       "      <td>3.683532</td>\n",
       "      <td>-2.458704</td>\n",
       "      <td>2153000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-22</th>\n",
       "      <td>1263.209961</td>\n",
       "      <td>3.511517</td>\n",
       "      <td>1.418655</td>\n",
       "      <td>2093100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-23</th>\n",
       "      <td>1276.310059</td>\n",
       "      <td>2.183825</td>\n",
       "      <td>0.374347</td>\n",
       "      <td>1566200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-24</th>\n",
       "      <td>1279.310059</td>\n",
       "      <td>2.477096</td>\n",
       "      <td>1.438348</td>\n",
       "      <td>1640400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-27</th>\n",
       "      <td>1275.880005</td>\n",
       "      <td>2.139482</td>\n",
       "      <td>-1.552469</td>\n",
       "      <td>1600600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-28</th>\n",
       "      <td>1233.670044</td>\n",
       "      <td>4.532552</td>\n",
       "      <td>-4.212962</td>\n",
       "      <td>2951300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-29</th>\n",
       "      <td>1341.479980</td>\n",
       "      <td>2.614425</td>\n",
       "      <td>0.001492</td>\n",
       "      <td>3793600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-04-30</th>\n",
       "      <td>1348.660034</td>\n",
       "      <td>2.293398</td>\n",
       "      <td>1.794882</td>\n",
       "      <td>2668900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-05-01</th>\n",
       "      <td>1320.609985</td>\n",
       "      <td>3.132719</td>\n",
       "      <td>-0.593904</td>\n",
       "      <td>2072500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-05-04</th>\n",
       "      <td>1326.800049</td>\n",
       "      <td>2.206315</td>\n",
       "      <td>1.419480</td>\n",
       "      <td>1504000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2020-05-05</th>\n",
       "      <td>1351.109985</td>\n",
       "      <td>2.727557</td>\n",
       "      <td>0.985854</td>\n",
       "      <td>1650700</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  Close  HL_Change  OC_Change   Volume\n",
       "Date                                                  \n",
       "2020-03-10  1280.390015   5.118275   1.618255  2611400\n",
       "2020-03-11  1215.410034   5.425269  -2.743852  2608500\n",
       "2020-03-12  1114.910034   7.237038  -0.984899  4226700\n",
       "2020-03-13  1219.729980   9.185670   3.454621  3700100\n",
       "2020-03-16  1084.329956   7.243497  -1.064785  4252400\n",
       "2020-03-17  1119.800049   7.087999   2.441663  3861500\n",
       "2020-03-18  1096.800049   6.673219   3.813503  4233400\n",
       "2020-03-19  1115.290039   9.231318   2.034673  3651100\n",
       "2020-03-20  1072.319946   7.367502  -5.582364  3601800\n",
       "2020-03-23  1056.619995   5.701222  -0.442840  4044100\n",
       "2020-03-24  1134.459961   4.069245   2.780465  3344500\n",
       "2020-03-25  1102.489990   5.790924  -2.128772  4081500\n",
       "2020-03-26  1161.750000   6.990201   4.492710  3571700\n",
       "2020-03-27  1110.709961   4.047346  -1.328994  3208500\n",
       "2020-03-30  1146.819946   5.029734   1.935923  2574100\n",
       "2020-03-31  1162.810059   3.265859   1.351870  2486400\n",
       "2020-04-01  1105.619995   2.937718  -1.459893  2344200\n",
       "2020-04-02  1120.839966   2.778180   2.055975  1964900\n",
       "2020-04-03  1097.880005   4.049784  -1.888715  2313400\n",
       "2020-04-06  1186.920044   5.634260   4.298774  2664700\n",
       "2020-04-07  1186.510010   3.617741  -2.824733  2387300\n",
       "2020-04-08  1210.280029   2.601494   0.313305  1975100\n",
       "2020-04-09  1211.449951   2.409469  -1.031796  2175400\n",
       "2020-04-13  1217.560059   2.771307   0.693032  1739800\n",
       "2020-04-14  1269.229980   3.649349   1.938817  2470400\n",
       "2020-04-15  1262.469971   3.229598   1.353553  1671700\n",
       "2020-04-16  1263.469971   2.927685  -0.834315  2518100\n",
       "2020-04-17  1283.250000   1.825010  -0.124526  1949000\n",
       "2020-04-20  1266.609985   1.603810  -0.345399  1695500\n",
       "2020-04-21  1216.339966   3.683532  -2.458704  2153000\n",
       "2020-04-22  1263.209961   3.511517   1.418655  2093100\n",
       "2020-04-23  1276.310059   2.183825   0.374347  1566200\n",
       "2020-04-24  1279.310059   2.477096   1.438348  1640400\n",
       "2020-04-27  1275.880005   2.139482  -1.552469  1600600\n",
       "2020-04-28  1233.670044   4.532552  -4.212962  2951300\n",
       "2020-04-29  1341.479980   2.614425   0.001492  3793600\n",
       "2020-04-30  1348.660034   2.293398   1.794882  2668900\n",
       "2020-05-01  1320.609985   3.132719  -0.593904  2072500\n",
       "2020-05-04  1326.800049   2.206315   1.419480  1504000\n",
       "2020-05-05  1351.109985   2.727557   0.985854  1650700"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_Mark[-forecast_out:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 151
    },
    "colab_type": "code",
    "executionInfo": {
     "elapsed": 1934,
     "status": "ok",
     "timestamp": 1596178596207,
     "user": {
      "displayName": "Shubham Sood",
      "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gi0ldgwk3p_Q0rON7ydNzarF2aCo0j89DXbT0ZVKiM=s64",
      "userId": "08327893235702426167"
     },
     "user_tz": -330
    },
    "id": "_12P_t1d8qpd",
    "outputId": "eb32287e-75d4-4302-a817-2a34643872df"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1280.41655434 1216.26780589 1115.49322823 1219.54506177 1084.93375279\n",
      " 1119.74921133 1096.47896132 1115.39125109 1073.7789387  1057.0661055\n",
      " 1134.25156074 1103.24163595 1161.3129283  1111.26921449 1146.81180393\n",
      " 1162.84933237 1106.18300336 1120.75025851 1098.56186357 1186.48492135\n",
      " 1187.33185022 1210.48929232 1211.89804675 1217.7075277  1269.15261751\n",
      " 1262.502817   1263.88233519 1283.50032682 1266.90171331 1217.09457329\n",
      " 1263.23238793 1276.48836757 1279.29917675 1276.41319405 1234.76012146\n",
      " 1341.6883294  1348.54447673 1320.98149823 1326.77665244]\n"
     ]
    }
   ],
   "source": [
    "# 预测输出 \n",
    "infer_X = np.array(df_Mark[-forecast_out:-1])\n",
    "forecast_set = lr.predict(infer_X)\n",
    "print(forecast_set)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1215.410034, 1114.910034, 1219.72998 , 1084.329956, 1119.800049,\n",
       "       1096.800049, 1115.290039, 1072.319946, 1056.619995, 1134.459961,\n",
       "       1102.48999 , 1161.75    , 1110.709961, 1146.819946, 1162.810059,\n",
       "       1105.619995, 1120.839966, 1097.880005, 1186.920044, 1186.51001 ,\n",
       "       1210.280029, 1211.449951, 1217.560059, 1269.22998 , 1262.469971,\n",
       "       1263.469971, 1283.25    , 1266.609985, 1216.339966, 1263.209961,\n",
       "       1276.310059, 1279.310059, 1275.880005, 1233.670044, 1341.47998 ,\n",
       "       1348.660034, 1320.609985, 1326.800049, 1351.109985])"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 真实输出——收盘价\n",
    "Close_Mark[1:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 890
    },
    "colab_type": "code",
    "executionInfo": {
     "elapsed": 1793,
     "status": "ok",
     "timestamp": 1596178596208,
     "user": {
      "displayName": "Shubham Sood",
      "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14Gi0ldgwk3p_Q0rON7ydNzarF2aCo0j89DXbT0ZVKiM=s64",
      "userId": "08327893235702426167"
     },
     "user_tz": -330
    },
    "id": "8HFEVR8wfD93",
    "outputId": "571bbf41-b87c-422e-dbdd-1f33a097a318"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>TomorrowRealClose</th>\n",
       "      <th>Prediction</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2020-03-10</td>\n",
       "      <td>1215.410034</td>\n",
       "      <td>1280.416554</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2020-03-11</td>\n",
       "      <td>1114.910034</td>\n",
       "      <td>1216.267806</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2020-03-12</td>\n",
       "      <td>1219.729980</td>\n",
       "      <td>1115.493228</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2020-03-13</td>\n",
       "      <td>1084.329956</td>\n",
       "      <td>1219.545062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2020-03-16</td>\n",
       "      <td>1119.800049</td>\n",
       "      <td>1084.933753</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2020-03-17</td>\n",
       "      <td>1096.800049</td>\n",
       "      <td>1119.749211</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2020-03-18</td>\n",
       "      <td>1115.290039</td>\n",
       "      <td>1096.478961</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2020-03-19</td>\n",
       "      <td>1072.319946</td>\n",
       "      <td>1115.391251</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2020-03-20</td>\n",
       "      <td>1056.619995</td>\n",
       "      <td>1073.778939</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2020-03-23</td>\n",
       "      <td>1134.459961</td>\n",
       "      <td>1057.066105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>2020-03-24</td>\n",
       "      <td>1102.489990</td>\n",
       "      <td>1134.251561</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2020-03-25</td>\n",
       "      <td>1161.750000</td>\n",
       "      <td>1103.241636</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>2020-03-26</td>\n",
       "      <td>1110.709961</td>\n",
       "      <td>1161.312928</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>2020-03-27</td>\n",
       "      <td>1146.819946</td>\n",
       "      <td>1111.269214</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>2020-03-30</td>\n",
       "      <td>1162.810059</td>\n",
       "      <td>1146.811804</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>2020-03-31</td>\n",
       "      <td>1105.619995</td>\n",
       "      <td>1162.849332</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>2020-04-01</td>\n",
       "      <td>1120.839966</td>\n",
       "      <td>1106.183003</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>2020-04-02</td>\n",
       "      <td>1097.880005</td>\n",
       "      <td>1120.750259</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>2020-04-03</td>\n",
       "      <td>1186.920044</td>\n",
       "      <td>1098.561864</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>2020-04-06</td>\n",
       "      <td>1186.510010</td>\n",
       "      <td>1186.484921</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>2020-04-07</td>\n",
       "      <td>1210.280029</td>\n",
       "      <td>1187.331850</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>2020-04-08</td>\n",
       "      <td>1211.449951</td>\n",
       "      <td>1210.489292</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>2020-04-09</td>\n",
       "      <td>1217.560059</td>\n",
       "      <td>1211.898047</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>2020-04-13</td>\n",
       "      <td>1269.229980</td>\n",
       "      <td>1217.707528</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>2020-04-14</td>\n",
       "      <td>1262.469971</td>\n",
       "      <td>1269.152618</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>2020-04-15</td>\n",
       "      <td>1263.469971</td>\n",
       "      <td>1262.502817</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>2020-04-16</td>\n",
       "      <td>1283.250000</td>\n",
       "      <td>1263.882335</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>2020-04-17</td>\n",
       "      <td>1266.609985</td>\n",
       "      <td>1283.500327</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>2020-04-20</td>\n",
       "      <td>1216.339966</td>\n",
       "      <td>1266.901713</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>2020-04-21</td>\n",
       "      <td>1263.209961</td>\n",
       "      <td>1217.094573</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>2020-04-22</td>\n",
       "      <td>1276.310059</td>\n",
       "      <td>1263.232388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>2020-04-23</td>\n",
       "      <td>1279.310059</td>\n",
       "      <td>1276.488368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>2020-04-24</td>\n",
       "      <td>1275.880005</td>\n",
       "      <td>1279.299177</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>2020-04-27</td>\n",
       "      <td>1233.670044</td>\n",
       "      <td>1276.413194</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>2020-04-28</td>\n",
       "      <td>1341.479980</td>\n",
       "      <td>1234.760121</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>2020-04-29</td>\n",
       "      <td>1348.660034</td>\n",
       "      <td>1341.688329</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>2020-04-30</td>\n",
       "      <td>1320.609985</td>\n",
       "      <td>1348.544477</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>2020-05-01</td>\n",
       "      <td>1326.800049</td>\n",
       "      <td>1320.981498</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>2020-05-04</td>\n",
       "      <td>1351.109985</td>\n",
       "      <td>1326.776652</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Date  TomorrowRealClose   Prediction\n",
       "0   2020-03-10        1215.410034  1280.416554\n",
       "1   2020-03-11        1114.910034  1216.267806\n",
       "2   2020-03-12        1219.729980  1115.493228\n",
       "3   2020-03-13        1084.329956  1219.545062\n",
       "4   2020-03-16        1119.800049  1084.933753\n",
       "5   2020-03-17        1096.800049  1119.749211\n",
       "6   2020-03-18        1115.290039  1096.478961\n",
       "7   2020-03-19        1072.319946  1115.391251\n",
       "8   2020-03-20        1056.619995  1073.778939\n",
       "9   2020-03-23        1134.459961  1057.066105\n",
       "10  2020-03-24        1102.489990  1134.251561\n",
       "11  2020-03-25        1161.750000  1103.241636\n",
       "12  2020-03-26        1110.709961  1161.312928\n",
       "13  2020-03-27        1146.819946  1111.269214\n",
       "14  2020-03-30        1162.810059  1146.811804\n",
       "15  2020-03-31        1105.619995  1162.849332\n",
       "16  2020-04-01        1120.839966  1106.183003\n",
       "17  2020-04-02        1097.880005  1120.750259\n",
       "18  2020-04-03        1186.920044  1098.561864\n",
       "19  2020-04-06        1186.510010  1186.484921\n",
       "20  2020-04-07        1210.280029  1187.331850\n",
       "21  2020-04-08        1211.449951  1210.489292\n",
       "22  2020-04-09        1217.560059  1211.898047\n",
       "23  2020-04-13        1269.229980  1217.707528\n",
       "24  2020-04-14        1262.469971  1269.152618\n",
       "25  2020-04-15        1263.469971  1262.502817\n",
       "26  2020-04-16        1283.250000  1263.882335\n",
       "27  2020-04-17        1266.609985  1283.500327\n",
       "28  2020-04-20        1216.339966  1266.901713\n",
       "29  2020-04-21        1263.209961  1217.094573\n",
       "30  2020-04-22        1276.310059  1263.232388\n",
       "31  2020-04-23        1279.310059  1276.488368\n",
       "32  2020-04-24        1275.880005  1279.299177\n",
       "33  2020-04-27        1233.670044  1276.413194\n",
       "34  2020-04-28        1341.479980  1234.760121\n",
       "35  2020-04-29        1348.660034  1341.688329\n",
       "36  2020-04-30        1320.609985  1348.544477\n",
       "37  2020-05-01        1326.800049  1320.981498\n",
       "38  2020-05-04        1351.109985  1326.776652"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "date= ['2020-03-10','2020-03-11','2020-03-12','2020-03-13','2020-03-16','2020-03-17','2020-03-18','2020-03-19','2020-03-20','2020-03-23',\n",
    "       '2020-03-24','2020-03-25','2020-03-26','2020-03-27','2020-03-30','2020-03-31','2020-04-01','2020-04-02','2020-04-03','2020-04-06',\n",
    "       '2020-04-07','2020-04-08','2020-04-09','2020-04-13','2020-04-14','2020-04-15','2020-04-16','2020-04-17','2020-04-20','2020-04-21',\n",
    "       '2020-04-22','2020-04-23','2020-04-24','2020-04-27','2020-04-28','2020-04-29','2020-04-30','2020-05-01','2020-05-04']\n",
    "cl = Close_Mark[1:]\n",
    "pr = forecast_set\n",
    "result = pd.DataFrame({'Date': date, 'TomorrowRealClose': cl, 'Prediction': pr}, columns=['Date', 'TomorrowRealClose', 'Prediction'])\n",
    "result"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 注意：这里5月4日的TomorrowRealClose其实是5月5日的收盘价\n",
    "## 5月4日的Prediction是依据4日的输入4维度特征进行预测的5日收盘价\n",
    "## 所以，这就是错位思想。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "50.04636506825478"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "RMSE = math.sqrt(mean_squared_error(cl, pr))\n",
    "RMSE"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 结果可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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tDrQ0/iJ2NhwS86rI+tImVTWeYgINizdtLUj5dEWKA9rUR7WojysRXnU27Mnn+Tk9EBPA8Ow4/X6Aj2NDuVw2ScmHvnNfq30ibRTkSH68RYRERERnekTERERERFp11T0iYiIiIiItGMq+kRERERERNoxFX0iIiIiIiLtmIo+ERERERGRdkzX+4mIiIiIyHHZuHE9c+bcRXp6N2w2G3V1dUyYcB6XXfbLZo3z9NNPkJ6eQa9evfnkk4/4zW9uOOzj1qz5gP79T8Zms/Hii8/z+9/P8se30e6dsKJv06ZNPProoyxZsoT8/HxmzZqFzWajV69ezJkzB7vdzpQpUygtLSUoKIiQkBCef/75Iz5WRERERESs55RTTmXu3AcBcLlcXHXVzzn33AuJijpy37gj6dWrD7169Tni5199dRkZGXeTnp6hgq8ZTkjR99xzz/Hmm28SFhYGwPz587nllls47bTTuPfee3nvvfc455xz2LlzJ2+//fYhzaOP9FgRERERETm8kL+/QuiypX4ds/bKX1N3xVXNek51dTV2u51bbplK584pVFRU8MgjC3nssYcoKPgen8/HDTfcyNChw/jww/dYvPgFYmOduN1u0tMz2LhxPW+88Rp/+MN83nprJStWvIbP52X06DPp168/OTnbeOCBe5k9+34eeGAOixa9xOefZ7Fo0dOEhIQQHR3DXXfdS3b2d7z88t8ICnKwe/cuxo49h2uv/a1f/3zakhNS9HXt2pUnnniCO++8E4Cvv/6a4cOHAzBmzBg+/fRThgwZQnl5OVOmTKG8vJzJkydz9tlnH/axKvpERERERKxpw4bPuemmydjtdhwOB7feegcvv/w3zjnnPM4882xWrPgHMTGx3HXXvZSVlTJt2mSWLl3OX/7yZ557bjHR0THccceMQ8YsKSlm6dLFLF68jKCgYJ588nEGDx5Kz569ueOOuwkKCgLANE0efvhB/vKX50lMTGL58mUsXvwCp58+msLC3bz00jLcbjeXXHKeij5/O/fccykoKGj8f9M0G1fzIiIiqKiowO12c91113HNNddQVlbGlVdeycCBAw/72GMxDBuxseEn4ltpEcOwW3JeHZkysRblYS3Kw1qUh7UoD2tRHvUKC20YRv0xKM9Vv6byql/7/WsYx/q8YeeUU07l/vsfOuTjr7yyhG7dumEYdnJzt/Pll1/w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jkm3dx4QFhZGVFQUUL/XOS8vD7fbzZIlS7jyyitJSEgI8Aw7HmViLcrDWpSHtSgPa1Ee1qI8rEV5dEw20zTNQE/Cavbs2cNZZ53FoEGDWLBgARkZGYGeUoenTKxFeViL8rAW5WEtysNalIe1KI+OQyt9h2EYBgUFBWRmZuovv0UoE2tRHtaiPKxFeViL8rAW5WEtyqPj0ErfEbhcLoKDgwM9DTmIMrEW5WEtysNalIe1KA9rUR7Wojw6BhV9IiIiIiIi7Ziab4iIiIiIiLRjKvpERERERETaMRV9IiIiIiIi7Zias4uIiBzFunXruOWWW+jZsyemaeLxeLjmmmu44IILDvv4Xbt28e233zJ27NhWnqmIiMjhqegTERE5hhEjRvD4448DUFVVxdVXX023bt3o16/fTx6blZXFjh07VPSJiIhlqOgTERFphoiICK644gpWrVrF0qVL2bNnDyUlJYwZM4bp06ezaNEiamtrGTJkCKmpqTzwwAMAxMbG8uCDDxIVFRXg70BERDoanekTERFppvj4eLZu3crgwYN54YUXWLZsGcuWLcMwDCZPnsxFF13EuHHjmD17NnPmzGHJkiWMGTOG559/PtBTFxGRDkgrfSIiIs20a9cuhgwZwldffUVWVhaRkZG4XK6fPG779u384Q9/AMDtdtOtW7fWnqqIiIiKPhERkeaorKzk1Vdf5bLLLqOmpob77ruP/Px8li9fjmma2O12fD4fAN26dWPBggWkpKSwYcMGioqKAjx7ERHpiFT0iYiIHENWVhZXX301drsdr9fL9OnT6datG7fddhsbNmwgLCyM9PR09u7dS+/evXn66afp378/c+fOZebMmXi9XgDmzZsX4O9EREQ6IptpmmagJyEiIiIiIiInhi5yERERERERacdU9ImIiIiIiLRjKvpERERERETaMRV9IiIiIiIi7ZiKPhERERERkXZMRZ+IiIiIiEg7pqJPRERERESkHVPRJyIiIiIi0o79fw3Eg70UhUbJAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1080x720 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "sns.set_style(\"darkgrid\")\n",
    "\n",
    "result['TomorrowRealClose'].plot(figsize = (15,10))\n",
    "result['Prediction'].plot(figsize = (15,10), c='red')\n",
    "plt.legend(loc=4)\n",
    "plt.xlabel('Date')\n",
    "plt.ylabel('Price')\n",
    "plt.xticks(range(0,result.shape[0],5), result['Date'][::5], rotation=45)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.plotly.v1+json": {
       "config": {
        "plotlyServerURL": "https://plotly.com"
       },
       "data": [
        {
         "mode": "lines",
         "name": "Tomorrow Real Price",
         "type": "scatter",
         "x": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38
         ],
         "y": [
          1215.410034,
          1114.910034,
          1219.72998,
          1084.329956,
          1119.800049,
          1096.800049,
          1115.290039,
          1072.319946,
          1056.619995,
          1134.459961,
          1102.48999,
          1161.75,
          1110.709961,
          1146.819946,
          1162.810059,
          1105.619995,
          1120.839966,
          1097.880005,
          1186.920044,
          1186.51001,
          1210.280029,
          1211.449951,
          1217.560059,
          1269.22998,
          1262.469971,
          1263.469971,
          1283.25,
          1266.609985,
          1216.339966,
          1263.209961,
          1276.310059,
          1279.310059,
          1275.880005,
          1233.670044,
          1341.47998,
          1348.660034,
          1320.609985,
          1326.800049,
          1351.109985
         ]
        },
        {
         "mode": "lines",
         "name": "Test Prediction Price",
         "type": "scatter",
         "x": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38
         ],
         "y": [
          1280.4165543390768,
          1216.267805889486,
          1115.4932282342672,
          1219.5450617706929,
          1084.9337527945756,
          1119.7492113292808,
          1096.4789613213838,
          1115.3912510896323,
          1073.7789387007579,
          1057.0661054966372,
          1134.251560743158,
          1103.2416359548747,
          1161.3129283026383,
          1111.2692144864554,
          1146.8118039270446,
          1162.8493323690411,
          1106.1830033598546,
          1120.7502585077739,
          1098.5618635680687,
          1186.484921352277,
          1187.331850216893,
          1210.4892923175162,
          1211.8980467548024,
          1217.7075277042882,
          1269.1526175099657,
          1262.5028170031176,
          1263.8823351913902,
          1283.500326820057,
          1266.9017133147681,
          1217.0945732937807,
          1263.2323879342248,
          1276.4883675664375,
          1279.2991767508308,
          1276.4131940497534,
          1234.7601214575866,
          1341.6883294003703,
          1348.5444767336353,
          1320.9814982259136,
          1326.776652441013
         ]
        }
       ],
       "layout": {
        "annotations": [
         {
          "font": {
           "color": "white",
           "family": "Rockwell",
           "size": 26
          },
          "showarrow": false,
          "text": "Results (LinearModel)",
          "x": 0,
          "xanchor": "left",
          "xref": "paper",
          "y": 1.05,
          "yanchor": "bottom",
          "yref": "paper"
         }
        ],
        "showlegend": true,
        "template": {
         "data": {
          "bar": [
           {
            "error_x": {
             "color": "#f2f5fa"
            },
            "error_y": {
             "color": "#f2f5fa"
            },
            "marker": {
             "line": {
              "color": "rgb(17,17,17)",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "bar"
           }
          ],
          "barpolar": [
           {
            "marker": {
             "line": {
              "color": "rgb(17,17,17)",
              "width": 0.5
             },
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "barpolar"
           }
          ],
          "carpet": [
           {
            "aaxis": {
             "endlinecolor": "#A2B1C6",
             "gridcolor": "#506784",
             "linecolor": "#506784",
             "minorgridcolor": "#506784",
             "startlinecolor": "#A2B1C6"
            },
            "baxis": {
             "endlinecolor": "#A2B1C6",
             "gridcolor": "#506784",
             "linecolor": "#506784",
             "minorgridcolor": "#506784",
             "startlinecolor": "#A2B1C6"
            },
            "type": "carpet"
           }
          ],
          "choropleth": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "choropleth"
           }
          ],
          "contour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "contour"
           }
          ],
          "contourcarpet": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "contourcarpet"
           }
          ],
          "heatmap": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "heatmap"
           }
          ],
          "heatmapgl": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "heatmapgl"
           }
          ],
          "histogram": [
           {
            "marker": {
             "pattern": {
              "fillmode": "overlay",
              "size": 10,
              "solidity": 0.2
             }
            },
            "type": "histogram"
           }
          ],
          "histogram2d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "histogram2d"
           }
          ],
          "histogram2dcontour": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "histogram2dcontour"
           }
          ],
          "mesh3d": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "type": "mesh3d"
           }
          ],
          "parcoords": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "parcoords"
           }
          ],
          "pie": [
           {
            "automargin": true,
            "type": "pie"
           }
          ],
          "scatter": [
           {
            "marker": {
             "line": {
              "color": "#283442"
             }
            },
            "type": "scatter"
           }
          ],
          "scatter3d": [
           {
            "line": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatter3d"
           }
          ],
          "scattercarpet": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattercarpet"
           }
          ],
          "scattergeo": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattergeo"
           }
          ],
          "scattergl": [
           {
            "marker": {
             "line": {
              "color": "#283442"
             }
            },
            "type": "scattergl"
           }
          ],
          "scattermapbox": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scattermapbox"
           }
          ],
          "scatterpolar": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolar"
           }
          ],
          "scatterpolargl": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterpolargl"
           }
          ],
          "scatterternary": [
           {
            "marker": {
             "colorbar": {
              "outlinewidth": 0,
              "ticks": ""
             }
            },
            "type": "scatterternary"
           }
          ],
          "surface": [
           {
            "colorbar": {
             "outlinewidth": 0,
             "ticks": ""
            },
            "colorscale": [
             [
              0,
              "#0d0887"
             ],
             [
              0.1111111111111111,
              "#46039f"
             ],
             [
              0.2222222222222222,
              "#7201a8"
             ],
             [
              0.3333333333333333,
              "#9c179e"
             ],
             [
              0.4444444444444444,
              "#bd3786"
             ],
             [
              0.5555555555555556,
              "#d8576b"
             ],
             [
              0.6666666666666666,
              "#ed7953"
             ],
             [
              0.7777777777777778,
              "#fb9f3a"
             ],
             [
              0.8888888888888888,
              "#fdca26"
             ],
             [
              1,
              "#f0f921"
             ]
            ],
            "type": "surface"
           }
          ],
          "table": [
           {
            "cells": {
             "fill": {
              "color": "#506784"
             },
             "line": {
              "color": "rgb(17,17,17)"
             }
            },
            "header": {
             "fill": {
              "color": "#2a3f5f"
             },
             "line": {
              "color": "rgb(17,17,17)"
             }
            },
            "type": "table"
           }
          ]
         },
         "layout": {
          "annotationdefaults": {
           "arrowcolor": "#f2f5fa",
           "arrowhead": 0,
           "arrowwidth": 1
          },
          "autotypenumbers": "strict",
          "coloraxis": {
           "colorbar": {
            "outlinewidth": 0,
            "ticks": ""
           }
          },
          "colorscale": {
           "diverging": [
            [
             0,
             "#8e0152"
            ],
            [
             0.1,
             "#c51b7d"
            ],
            [
             0.2,
             "#de77ae"
            ],
            [
             0.3,
             "#f1b6da"
            ],
            [
             0.4,
             "#fde0ef"
            ],
            [
             0.5,
             "#f7f7f7"
            ],
            [
             0.6,
             "#e6f5d0"
            ],
            [
             0.7,
             "#b8e186"
            ],
            [
             0.8,
             "#7fbc41"
            ],
            [
             0.9,
             "#4d9221"
            ],
            [
             1,
             "#276419"
            ]
           ],
           "sequential": [
            [
             0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1,
             "#f0f921"
            ]
           ],
           "sequentialminus": [
            [
             0,
             "#0d0887"
            ],
            [
             0.1111111111111111,
             "#46039f"
            ],
            [
             0.2222222222222222,
             "#7201a8"
            ],
            [
             0.3333333333333333,
             "#9c179e"
            ],
            [
             0.4444444444444444,
             "#bd3786"
            ],
            [
             0.5555555555555556,
             "#d8576b"
            ],
            [
             0.6666666666666666,
             "#ed7953"
            ],
            [
             0.7777777777777778,
             "#fb9f3a"
            ],
            [
             0.8888888888888888,
             "#fdca26"
            ],
            [
             1,
             "#f0f921"
            ]
           ]
          },
          "colorway": [
           "#636efa",
           "#EF553B",
           "#00cc96",
           "#ab63fa",
           "#FFA15A",
           "#19d3f3",
           "#FF6692",
           "#B6E880",
           "#FF97FF",
           "#FECB52"
          ],
          "font": {
           "color": "#f2f5fa"
          },
          "geo": {
           "bgcolor": "rgb(17,17,17)",
           "lakecolor": "rgb(17,17,17)",
           "landcolor": "rgb(17,17,17)",
           "showlakes": true,
           "showland": true,
           "subunitcolor": "#506784"
          },
          "hoverlabel": {
           "align": "left"
          },
          "hovermode": "closest",
          "mapbox": {
           "style": "dark"
          },
          "paper_bgcolor": "rgb(17,17,17)",
          "plot_bgcolor": "rgb(17,17,17)",
          "polar": {
           "angularaxis": {
            "gridcolor": "#506784",
            "linecolor": "#506784",
            "ticks": ""
           },
           "bgcolor": "rgb(17,17,17)",
           "radialaxis": {
            "gridcolor": "#506784",
            "linecolor": "#506784",
            "ticks": ""
           }
          },
          "scene": {
           "xaxis": {
            "backgroundcolor": "rgb(17,17,17)",
            "gridcolor": "#506784",
            "gridwidth": 2,
            "linecolor": "#506784",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "#C8D4E3"
           },
           "yaxis": {
            "backgroundcolor": "rgb(17,17,17)",
            "gridcolor": "#506784",
            "gridwidth": 2,
            "linecolor": "#506784",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "#C8D4E3"
           },
           "zaxis": {
            "backgroundcolor": "rgb(17,17,17)",
            "gridcolor": "#506784",
            "gridwidth": 2,
            "linecolor": "#506784",
            "showbackground": true,
            "ticks": "",
            "zerolinecolor": "#C8D4E3"
           }
          },
          "shapedefaults": {
           "line": {
            "color": "#f2f5fa"
           }
          },
          "sliderdefaults": {
           "bgcolor": "#C8D4E3",
           "bordercolor": "rgb(17,17,17)",
           "borderwidth": 1,
           "tickwidth": 0
          },
          "ternary": {
           "aaxis": {
            "gridcolor": "#506784",
            "linecolor": "#506784",
            "ticks": ""
           },
           "baxis": {
            "gridcolor": "#506784",
            "linecolor": "#506784",
            "ticks": ""
           },
           "bgcolor": "rgb(17,17,17)",
           "caxis": {
            "gridcolor": "#506784",
            "linecolor": "#506784",
            "ticks": ""
           }
          },
          "title": {
           "x": 0.05
          },
          "updatemenudefaults": {
           "bgcolor": "#506784",
           "borderwidth": 0
          },
          "xaxis": {
           "automargin": true,
           "gridcolor": "#283442",
           "linecolor": "#506784",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "#283442",
           "zerolinewidth": 2
          },
          "yaxis": {
           "automargin": true,
           "gridcolor": "#283442",
           "linecolor": "#506784",
           "ticks": "",
           "title": {
            "standoff": 15
           },
           "zerolinecolor": "#283442",
           "zerolinewidth": 2
          }
         }
        },
        "xaxis": {
         "linecolor": "white",
         "linewidth": 2,
         "showgrid": true,
         "showline": true,
         "showticklabels": true,
         "tickmode": "array",
         "ticktext": [
          "2020-03-10",
          "2020-03-11",
          "2020-03-12",
          "2020-03-13",
          "2020-03-16",
          "2020-03-17",
          "2020-03-18",
          "2020-03-19",
          "2020-03-20",
          "2020-03-23",
          "2020-03-24",
          "2020-03-25",
          "2020-03-26",
          "2020-03-27",
          "2020-03-30",
          "2020-03-31",
          "2020-04-01",
          "2020-04-02",
          "2020-04-03",
          "2020-04-06",
          "2020-04-07",
          "2020-04-08",
          "2020-04-09",
          "2020-04-13",
          "2020-04-14",
          "2020-04-15",
          "2020-04-16",
          "2020-04-17",
          "2020-04-20",
          "2020-04-21",
          "2020-04-22",
          "2020-04-23",
          "2020-04-24",
          "2020-04-27",
          "2020-04-28",
          "2020-04-29",
          "2020-04-30",
          "2020-05-01",
          "2020-05-04"
         ],
         "tickvals": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          34,
          35,
          36,
          37,
          38
         ],
         "title": {
          "font": {
           "color": "white",
           "family": "Rockwell",
           "size": 12
          },
          "text": "Date"
         }
        },
        "yaxis": {
         "linecolor": "white",
         "linewidth": 2,
         "showgrid": true,
         "showline": true,
         "showticklabels": true,
         "tickfont": {
          "color": "white",
          "family": "Rockwell",
          "size": 12
         },
         "ticks": "outside",
         "title": {
          "font": {
           "color": "white",
           "family": "Rockwell",
           "size": 12
          },
          "text": "Close (USD)"
         }
        }
       }
      },
      "text/html": [
       "<div>                            <div id=\"7208dde0-bfd5-4b18-b330-c35d337507ca\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>            <script type=\"text/javascript\">                require([\"plotly\"], function(Plotly) {                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById(\"7208dde0-bfd5-4b18-b330-c35d337507ca\")) {                    Plotly.newPlot(                        \"7208dde0-bfd5-4b18-b330-c35d337507ca\",                        [{\"mode\":\"lines\",\"name\":\"Tomorrow Real Price\",\"x\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],\"y\":[1215.410034,1114.910034,1219.72998,1084.329956,1119.800049,1096.800049,1115.290039,1072.319946,1056.619995,1134.459961,1102.48999,1161.75,1110.709961,1146.819946,1162.810059,1105.619995,1120.839966,1097.880005,1186.920044,1186.51001,1210.280029,1211.449951,1217.560059,1269.22998,1262.469971,1263.469971,1283.25,1266.609985,1216.339966,1263.209961,1276.310059,1279.310059,1275.880005,1233.670044,1341.47998,1348.660034,1320.609985,1326.800049,1351.109985],\"type\":\"scatter\"},{\"mode\":\"lines\",\"name\":\"Test Prediction Price\",\"x\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],\"y\":[1280.4165543390768,1216.267805889486,1115.4932282342672,1219.5450617706929,1084.9337527945756,1119.7492113292808,1096.4789613213838,1115.3912510896323,1073.7789387007579,1057.0661054966372,1134.251560743158,1103.2416359548747,1161.3129283026383,1111.2692144864554,1146.8118039270446,1162.8493323690411,1106.1830033598546,1120.7502585077739,1098.5618635680687,1186.484921352277,1187.331850216893,1210.4892923175162,1211.8980467548024,1217.7075277042882,1269.1526175099657,1262.5028170031176,1263.8823351913902,1283.500326820057,1266.9017133147681,1217.0945732937807,1263.2323879342248,1276.4883675664375,1279.2991767508308,1276.4131940497534,1234.7601214575866,1341.6883294003703,1348.5444767336353,1320.9814982259136,1326.776652441013],\"type\":\"scatter\"}],                        {\"template\":{\"data\":{\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"bar\":[{\"error_x\":{\"color\":\"#f2f5fa\"},\"error_y\":{\"color\":\"#f2f5fa\"},\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"baxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"type\":\"carpet\"}],\"choropleth\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"choropleth\"}],\"contourcarpet\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"contourcarpet\"}],\"contour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"contour\"}],\"heatmapgl\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmapgl\"}],\"heatmap\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"heatmap\"}],\"histogram2dcontour\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2dcontour\"}],\"histogram2d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"histogram2d\"}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"mesh3d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"mesh3d\"}],\"parcoords\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"parcoords\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}],\"scatter3d\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatter3d\"}],\"scattercarpet\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattercarpet\"}],\"scattergeo\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergeo\"}],\"scattergl\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scattergl\"}],\"scattermapbox\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattermapbox\"}],\"scatterpolargl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolargl\"}],\"scatterpolar\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolar\"}],\"scatter\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scatter\"}],\"scatterternary\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterternary\"}],\"surface\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"type\":\"surface\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#506784\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"header\":{\"fill\":{\"color\":\"#2a3f5f\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"type\":\"table\"}]},\"layout\":{\"annotationdefaults\":{\"arrowcolor\":\"#f2f5fa\",\"arrowhead\":0,\"arrowwidth\":1},\"autotypenumbers\":\"strict\",\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]],\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]},\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#f2f5fa\"},\"geo\":{\"bgcolor\":\"rgb(17,17,17)\",\"lakecolor\":\"rgb(17,17,17)\",\"landcolor\":\"rgb(17,17,17)\",\"showlakes\":true,\"showland\":true,\"subunitcolor\":\"#506784\"},\"hoverlabel\":{\"align\":\"left\"},\"hovermode\":\"closest\",\"mapbox\":{\"style\":\"dark\"},\"paper_bgcolor\":\"rgb(17,17,17)\",\"plot_bgcolor\":\"rgb(17,17,17)\",\"polar\":{\"angularaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"radialaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"yaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"zaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"}},\"shapedefaults\":{\"line\":{\"color\":\"#f2f5fa\"}},\"sliderdefaults\":{\"bgcolor\":\"#C8D4E3\",\"bordercolor\":\"rgb(17,17,17)\",\"borderwidth\":1,\"tickwidth\":0},\"ternary\":{\"aaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"caxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"title\":{\"x\":0.05},\"updatemenudefaults\":{\"bgcolor\":\"#506784\",\"borderwidth\":0},\"xaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2},\"yaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2}}},\"xaxis\":{\"title\":{\"font\":{\"family\":\"Rockwell\",\"size\":12,\"color\":\"white\"},\"text\":\"Date\"},\"showline\":true,\"showgrid\":true,\"showticklabels\":true,\"linecolor\":\"white\",\"linewidth\":2,\"tickmode\":\"array\",\"tickvals\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],\"ticktext\":[\"2020-03-10\",\"2020-03-11\",\"2020-03-12\",\"2020-03-13\",\"2020-03-16\",\"2020-03-17\",\"2020-03-18\",\"2020-03-19\",\"2020-03-20\",\"2020-03-23\",\"2020-03-24\",\"2020-03-25\",\"2020-03-26\",\"2020-03-27\",\"2020-03-30\",\"2020-03-31\",\"2020-04-01\",\"2020-04-02\",\"2020-04-03\",\"2020-04-06\",\"2020-04-07\",\"2020-04-08\",\"2020-04-09\",\"2020-04-13\",\"2020-04-14\",\"2020-04-15\",\"2020-04-16\",\"2020-04-17\",\"2020-04-20\",\"2020-04-21\",\"2020-04-22\",\"2020-04-23\",\"2020-04-24\",\"2020-04-27\",\"2020-04-28\",\"2020-04-29\",\"2020-04-30\",\"2020-05-01\",\"2020-05-04\"]},\"yaxis\":{\"title\":{\"font\":{\"family\":\"Rockwell\",\"size\":12,\"color\":\"white\"},\"text\":\"Close (USD)\"},\"tickfont\":{\"family\":\"Rockwell\",\"size\":12,\"color\":\"white\"},\"showline\":true,\"showgrid\":true,\"showticklabels\":true,\"linecolor\":\"white\",\"linewidth\":2,\"ticks\":\"outside\"},\"showlegend\":true,\"annotations\":[{\"font\":{\"color\":\"white\",\"family\":\"Rockwell\",\"size\":26},\"showarrow\":false,\"text\":\"Results (LinearModel)\",\"x\":0.0,\"xanchor\":\"left\",\"xref\":\"paper\",\"y\":1.05,\"yanchor\":\"bottom\",\"yref\":\"paper\"}]},                        {\"responsive\": true}                    ).then(function(){\n",
       "                            \n",
       "var gd = document.getElementById('7208dde0-bfd5-4b18-b330-c35d337507ca');\n",
       "var x = new MutationObserver(function (mutations, observer) {{\n",
       "        var display = window.getComputedStyle(gd).display;\n",
       "        if (!display || display === 'none') {{\n",
       "            console.log([gd, 'removed!']);\n",
       "            Plotly.purge(gd);\n",
       "            observer.disconnect();\n",
       "        }}\n",
       "}});\n",
       "\n",
       "// Listen for the removal of the full notebook cells\n",
       "var notebookContainer = gd.closest('#notebook-container');\n",
       "if (notebookContainer) {{\n",
       "    x.observe(notebookContainer, {childList: true});\n",
       "}}\n",
       "\n",
       "// Listen for the clearing of the current output cell\n",
       "var outputEl = gd.closest('.output');\n",
       "if (outputEl) {{\n",
       "    x.observe(outputEl, {childList: true});\n",
       "}}\n",
       "\n",
       "                        })                };                });            </script>        </div>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import plotly.express as px\n",
    "import plotly.graph_objects as go\n",
    "\n",
    "fig = go.Figure()\n",
    "fig.add_trace(go.Scatter(go.Scatter(x=result.index, y=result['TomorrowRealClose'],\n",
    "                    mode='lines',\n",
    "                    name='Tomorrow Real Price')))\n",
    "fig.add_trace(go.Scatter(x=result.index, y=result['Prediction'],\n",
    "                    mode='lines',\n",
    "                    name='Test Prediction Price'))\n",
    "fig.update_layout(\n",
    "    xaxis=dict(\n",
    "        title_text='Date',\n",
    "        titlefont=dict(\n",
    "            family='Rockwell',\n",
    "            size=12,\n",
    "            color='white',\n",
    "        ),\n",
    "        showline=True,\n",
    "        showgrid=True,\n",
    "        showticklabels=True,\n",
    "        linecolor='white',\n",
    "        linewidth=2,\n",
    "        tickmode='array',\n",
    "        tickvals = [i for i in range(39)],\n",
    "        ticktext = date\n",
    "    ),\n",
    "    yaxis=dict(\n",
    "        title_text='Close (USD)',\n",
    "        titlefont=dict(\n",
    "            family='Rockwell',\n",
    "            size=12,\n",
    "            color='white',\n",
    "        ),\n",
    "        showline=True,\n",
    "        showgrid=True,\n",
    "        showticklabels=True,\n",
    "        linecolor='white',\n",
    "        linewidth=2,\n",
    "        ticks='outside',\n",
    "        tickfont=dict(\n",
    "            family='Rockwell',\n",
    "            size=12,\n",
    "            color='white',\n",
    "        ),\n",
    "    ),\n",
    "    showlegend=True,\n",
    "    template = 'plotly_dark'\n",
    "\n",
    ")\n",
    "\n",
    "\n",
    "\n",
    "annotations = []\n",
    "annotations.append(dict(xref='paper', yref='paper', x=0.0, y=1.05,\n",
    "                              xanchor='left', yanchor='bottom',\n",
    "                              text='Results (LinearModel)',\n",
    "                              font=dict(family='Rockwell',\n",
    "                                        size=26,\n",
    "                                        color='white'),\n",
    "                              showarrow=False))\n",
    "fig.update_layout(annotations=annotations)\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1.4 思考：\n",
    "对于这种滞后性应该如何缓解？\n",
    "1. 数据角度：特征工程\n",
    "2. 模型角度：时间序列模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "数据处理\n",
    "lookback"
   ]
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "collapsed_sections": [],
   "name": "Copy of final_1 w/ final comparison graph.ipynb",
   "provenance": [
    {
     "file_id": "1_DCUVoJg2LZ3L1OmIvoJS6bbcXEtvhqg",
     "timestamp": 1588486822153
    },
    {
     "file_id": "1AOe20QAf-ufpBw_Ix5JASTdnUyZJKtTJ",
     "timestamp": 1588415149717
    }
   ]
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
